<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- 上述3个meta标签*必须*放在最前面，任何其他内容都*必须*跟随其后！ -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0,user-scalable=no,minimal-ui">
        <meta name="description" content="">
        <meta name="author" content="">
        <link rel="icon" href="../img/asset-favico.ico">
        <title>编辑信息</title>
        <link rel="stylesheet" href="../css/page-health-orderInfo.css" />
        <link rel="stylesheet" href="../plugins/elementui/index.css" />
        <script src="../plugins/jquery/dist/jquery.min.js"></script>
        <script src="../plugins/healthmobile.js"></script>
        <script src="../plugins/datapicker/datePicker.js"></script>
        <script src="../plugins/vue/vue.js"></script>
        <script src="../plugins/vue/axios-0.18.0.js"></script>
        <script src="../plugins/elementui/index.js"></script>
        <script>
            var id = getUrlParam("id");
        </script>
        <link rel="stylesheet" href="/login/iconfont.css">
        <style>
            *{
                padding: 0;
                margin: 0;
            }
            #box{
                position: relative;
                width: 300px;
                height: 40px;
                margin: 0 auto;
                margin-top: 10px;
                background-color: #e8e8e8;
                box-shadow: 1px 1px 5px rgba(0,0,0,0.2);
            }
            .bgColor{
                position: absolute;
                left:0;
                top:0;
                width:40px;
                height: 40px;
                background-color: lightblue;
            }
            .txt{
                position: absolute;
                width: 100%;
                height: 40px;
                line-height: 40px;
                font-size: 14px;
                color: #000;
                text-align: center;
            }
            .slider{
                position: absolute;
                left:0;
                top:0;
                width: 50px;
                height: 38px;
                border: 1px solid #ccc;
                background: #fff;
                text-align: center;
                cursor: move;
            }
            .slider>i{
                position: absolute;
                top:50%;
                left:50%;
                transform: translate(-50%,-50%);
            }
            .slider.active>i{
                color:green;
            }
        </style>
    </head>
    <body data-spy="scroll" data-target="#myNavbar" data-offset="150">
        <div id="app" class="app">
            <!-- 页面头部 -->
            <div class="top-header">
                <span class="f-left"><i class="icon-back" onclick="history.go(-1)"></i></span>
                <span class="center">传智健康</span>
                <span class="f-right"><i class="icon-more"></i></span>
            </div>
            <!-- 页面内容 -->
            <div class="contentBox">
                <div class="card">
                    <div class="">
                        <img :src="'http://qe5olzbwd.bkt.clouddn.com/'+setmeal.img" width="100%" height="100%" />
                    </div>
                    <div class="project-text">
                        <h4 class="tit">{{setmeal.name}}</h4>
                        <p class="subtit">{{setmeal.remark}}</p>
                        <p class="keywords"><span>{{setmeal.sex == '0' ? '性别不限' : setmeal.sex == '1' ? '男':'女'}}</span><span>{{setmeal.age}}</span></p>
                    </div>
                    <div class="project-know">
                        <a href="orderNotice.html" class="link-page">
                            <i class="icon-ask-circle"><span class="path1"></span><span class="path2"></span></i>
                            <span class="word">预约须知</span>
                            <span class="arrow"><i class="icon-rit-arrow"></i></span>
                        </a>
                    </div>
                </div>
                <div class="form-info">
                    <div class="info-title">
                        <span class="name">体检人信息</span>
                    </div>
                    <form class="info-form">
                        <div class="input-row">
                            <label>体检人</label>
                            <input v-model="orderInfo.name" type="text" class="input-clear" placeholder="请输入姓名">
                        </div>
                        <div class="input-row single-radio">
                            <label class="radio-title">性别</label>
                            <div class="radio-list">
                                <div class="radio">
                                    <input v-model="orderInfo.sex" id="item1" type="radio" name="sex" value="1" checked>
                                    <label for="item1"></label>
                                    <span>男</span>
                                </div>
                                <div class="radio">
                                    <input v-model="orderInfo.sex" id="item2" type="radio" name="sex" value="2">
                                    <label for="item2"></label>
                                    <span>女</span>
                                </div>
                            </div>
                        </div>
                        <div class="input-row">
                            <label>手机号</label>
                            <input v-model="orderInfo.telephone" type="text" id='account' class="input-clear" placeholder="请输入手机号">
                            <!-- <input style="font-size: x-small;" id="validateCodeButton" @click="sendValidateCode" type="button" value="发送验证码">-->
                        </div>
                        <div class="input-row" style="padding: 0.1%"   >
                            <div  id="box" style="display: block;width:500px;" onselectstart="return false;" >
                                <div class="bgColor"></div>
                                <div class="txt" >滑动验证</div>
                                <!--给i标签添加上相应字体图标的类名即可-->
                                <div class="slider"><i class="iconfont iconicon_doubleright"></i></div>
                            </div>
                            <div  id="code" style="display:none;padding: 2%" >
                                <label style="margin-left: 10px">验证码</label>
                                <input style="margin-left:130px" v-model="orderInfo.validateCode" @blur="validateCodeFromRedis" type="text" class="input-clear" placeholder="请输入验证码">
                                <input style="font-size: x-small;margin-left: 200px" id="validateCodeButton" @click="sendValidateCode" type="button" value="验证码正发送中">
                            </div>
                        </div>
                        <div class="input-row">
                            <label>身份证号</label>
                            <input v-model="orderInfo.idCard" type="text" class="input-clear" placeholder="请输入身份证号">
                        </div>
                        <div class="date">
                            <label>体检日期</label>
                            <i class="icon-date" class="picktime"></i>
                            <input v-model="orderInfo.orderDate" type="text" class="picktime" readonly>
                        </div>
						<input v-model="orderInfo.orderType" type="hidden">
                    </form>
                    <div class="box-button">
                        <button @click="submitOrder()" type="button" class="btn order-btn">提交预约</button>
                    </div>
                </div>
            </div>
        </div>
        <script>
            var vue = new Vue({
                el:'#app',
                data:{
					imgUrl:null,
                    setmeal:{},//套餐信息
                    orderInfo:{
						orderType:"微信预约",
                        setmealId:id,
                        sex:'1'
                    }//预约信息
                },
                methods:{
                    //发送验证码
                    sendValidateCode(){
                        //获取用户输入的手机号
                        var telephone = this.orderInfo.telephone;
                        //校验手机号输入是否正确
                        if (!checkTelephone(this.orderInfo.telephone)) {
                            this.$message.error('请输入正确的手机号');
                            isSuccess=false;
                            slider.onmousedown = mousedownHandler;
                            return false;
                        }
                        $("#code").show();
                        $("#box").hide();
                        $("#account").attr("readOnly","true");
                        validateCodeButton = $("#validateCodeButton")[0];//使用变量validateCodeButton用来接收input标签
                        clock = window.setInterval(doLoop, 1000); //每隔一秒执行一次doLoop方法
                        axios.get("/validateCode/sendCodeToPhone.do?telephone="+telephone).then((res)=>{
                            if(res.data.flag){
                                this.$message.success(res.data.message);
                            }else {
                                this.$message.error(res.data.message);
                            }
                        });
						
                    },
                    //校验验证码
                    validateCodeFromRedis() {
                        var telephone = this.orderInfo.telephone;
                        var validateCode = this.orderInfo.validateCode;
                        if (!checkTelephone(telephone)) {
                            this.$message.error('请输入正确的手机号');
                            return;
                        }
                        if (validateCode == null || validateCode.length != 6) {
                            this.$message.error("请输入6位验证码");
                            return;
                        }
                        axios.get("/validateCode/validateCodeFromRedis.do?telephone=" + telephone + "&validateCode=" + validateCode).then((res) => {
                            if (res.data.flag) {
                                this.$message.success(res.data.message);
                            } else {
                                this.$message.error(res.data.message);
                            }
                        })
                    },
                    //提交预约
                    submitOrder(){
                        //校验前端手机号码
                        if (!checkTelephone(this.orderInfo.telephone)) {
                            this.$message.error('请输入正确的手机号');
                            return;
                        }

                        //校验身份证号格式
                        if(!checkIdCard(this.orderInfo.idCard)){
                            this.$message.error('身份证号码输入错误，请重新输入');
                            return;
                        }

                        //如果以上校验通过，则发起请求
                       //发送请求提交预约数据
					   axios.post("/order/submitOrder.do",this.orderInfo).then((res)=>{
                            if(res.data.flag){
                                this.$message.success(res.data.message);
                                /*location.href="orderSuccess.html?orderId="+res.data.data;*/
                                location.href="pay.html?orderId="+res.data.data.orderId+"&orderNumber="+res.data.data.orderNumber+"&setMealPrice="+res.data.data.setMealPrice;
                            }else {
                                //提示预约失败
                                this.$message.error(res.data.message);
                            }
                       })

                    }
                },
                created(){
                    axios.get("/setmeal/findSetmealByid.do?id="+id).then((res)=>{
                        if (res.data.flag){
                            this.setmeal =  res.data.data;
                        } else {
                            this.$message.error('查询失败')
                        }
                    })
                }
            });
        </script>
        <script>
            //日期控件
            var calendar = new datePicker();
            calendar.init({
                'trigger': '.picktime',/*按钮选择器，用于触发弹出插件*/
                'type': 'date',/*模式：date日期；datetime日期时间；time时间；ym年月；*/
                'minDate': getSpecifiedDate(new Date(),1),/*显示预约的最小日期,1表示从今天往后推迟1天，就是只能从明天开始预约*/
                'maxDate': getSpecifiedDate(new Date(),30),/*显示预约的最大日期*/
                'onSubmit': function() { /*确认时触发事件*/
                    //var theSelectData = calendar.value;
                },
                'onClose': function() { /*取消时触发事件*/ }
            });
        </script>
        <script>
            //一、定义了一个获取元素的方法
            function getEle(selector){
                return document.querySelector(selector);
            }
            //二、获取到需要用到的DOM元素
            var box = getEle("#box"),//容器
                bgColor = getEle(".bgColor"),//背景色
                txt = getEle(".txt"),//文本
                slider = getEle(".slider"),//滑块
                icon = getEle(".slider>i"),
                successMoveDistance = box.offsetWidth- slider.offsetWidth,//解锁需要滑动的距离
                downX,//用于存放鼠标按下时的位置
                isSuccess = false;//是否解锁成功的标志，默认不成功

            //三、给滑块添加鼠标按下事件
            slider.onmousedown = mousedownHandler;

            //3.1鼠标按下事件的方法实现
            function mousedownHandler(e){
                bgColor.style.transition = "";
                slider.style.transition = "";
                var e = e || window.event || e.which;
                downX = e.clientX;
                //在鼠标按下时，分别给鼠标添加移动和松开事件
                document.onmousemove = mousemoveHandler;
                document.onmouseup = mouseupHandler;
            };

            //四、定义一个获取鼠标当前需要移动多少距离的方法
            function getOffsetX(offset,min,max){
                if(offset < min){
                    offset = min;
                }else if(offset > max){
                    offset = max;
                }
                return offset;
            }

            //3.1.1鼠标移动事件的方法实现
            function mousemoveHandler(e){
                var e = e || window.event || e.which;
                var moveX = e.clientX;
                var offsetX = getOffsetX(moveX - downX,0,successMoveDistance);
                bgColor.style.width = offsetX + "px";
                slider.style.left = offsetX + "px";

                if(offsetX == successMoveDistance){
                    success();
                }
                //如果不设置滑块滑动时会出现问题（目前还不知道为什么）
                e.preventDefault();
            };

            //3.1.2鼠标松开事件的方法实现
            function mouseupHandler(e){
                if(!isSuccess){
                    bgColor.style.width = 0 + "px";
                    slider.style.left = 0 + "px";
                    bgColor.style.transition = "width 0.8s linear";
                    slider.style.transition = "left 0.8s linear";
                }
                document.onmousemove = null;
                document.onmouseup = null;
            };

            //五、定义一个滑块解锁成功的方法
            function success(){
                isSuccess = true;
                txt.innerHTML = "验证成功";
                bgColor.style.backgroundColor ="lightgreen";
                slider.className = "slider active";
                icon.className = "iconfont icon-xuanzhong";
                //滑动成功时，移除鼠标按下事件和鼠标移动事件
                slider.onmousedown = null;
                document.onmousemove = null;
                /*$("#code").show();
                $("#box").hide();*/
                document.getElementById("validateCodeButton").click();
            };
        </script>
    </body>
</html>